/*
 *  AudioBuffer.h
 *  glare
 *
 *  Created by sunjun on 11-6-14.
 *  Copyright 2011 sunstdio. All rights reserved.
 *
 */

//////////////////////////////////////////////////////////////////////////

#ifndef __AudioBuffer__
#define __AudioBuffer__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN(Audio)

//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented AudioBuffer interface.
	class AudioBuffer : public GReference
	{
  public:
		// constructor
		AudioBuffer();
		
		// destructor
		virtual ~AudioBuffer(); 

    // load the data
    VOID Load(U32 format, U32 rate, const VOID* data, U32 size);

  private:
    ALuint mObjects[2];

  private:friend class AudioSource;
	}; 

  //////////////////////////////////////////////////////////////////////////

  typedef GPtr<AudioBuffer>AudioBufferPtr;

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __AudioBuffer__

//////////////////////////////////////////////////////////////////////////